Знак.отд
Главная     ◄Глагол     ◄Азбука     ◄Задачи на Глаголе     Примеры приложений ►   Среда разработки ►   Отладка программ ►   Отличия от Оберона ►   Отличия от Паскаля ►   Ассемблер ARM ►   Глагол для ARM ►   ? и Ответы
 
 glagol.png Программируем по-русски
 

Основная задача Глагола — дать человеку возможность воплощать свои мысли на языке, близком к его родному языку.

Издатель Глагола
 

 
(*~\Глагол\Отделы\Иное~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
(**)                        ОТДЕЛ Знак;
(*============================================================================*)
(* НАЗНАЧЕНИЕ: распознавание и преобразование знаков                          *) 
(*============================================================================*)
ИСПОЛЬЗУЕТ Буква;

ПЕР
  (* таблицы преобразования для знаков с кодами от 080X до 0FFX *)
  издос,извин:РЯД 129 ИЗ ЗНАК;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА Цифра-(знак:ЗНАК):КЛЮЧ;
(* ВКЛ, если <знак> является цифрой. *)
УКАЗ 
  ВОЗВРАТ (знак >= "0") И (знак <= "9")
КОН Цифра;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА БукваЦифра-(знак:ЗНАК):КЛЮЧ;
(* ВКЛ, если <знак> является буквой или цифрой. *)
УКАЗ 
  ВОЗВРАТ Буква.Известная(знак) ИЛИ Цифра(знак)
КОН БукваЦифра;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ВСлове-(знак:ЗНАК):КЛЮЧ;
(* ВКЛ, если <знак> является знаком слова. *)
УКАЗ 
  ВОЗВРАТ Буква.Известная(знак) ИЛИ Цифра(знак) ИЛИ (знак = "_")
КОН ВСлове;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ВДос-(знак:ЗНАК):ЯЧЦЕЛ;
(* Переводит <знак> в Дос-код знака. *)
ПЕР
  н:ЦЕЛ;
УКАЗ 
  н:=ВЦЕЛ(знак);
  ЕСЛИ  н < 128 ТО
    ВОЗВРАТ УЗК(УЗК(н))
  КОН;
  ОТ н:=0 ДО 127 ВЫП
    ЕСЛИ  знак = издос[н] ТО
      ВОЗВРАТ УЗК(УЗК(н-80H))
    КОН
  КОН;
  ВОЗВРАТ 0
КОН ВДос;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ВВин-(знак:ЗНАК):ЯЧЦЕЛ;
(* Переводит <знак> в Вин-код знака. *)
ПЕР
  н:ЦЕЛ;
УКАЗ 
  н:=ВЦЕЛ(знак);
  ЕСЛИ  н < 128 ТО
    ВОЗВРАТ УЗК(УЗК(н))
  КОН;
  ОТ н:=0 ДО 127 ВЫП
    ЕСЛИ  знак = извин[н] ТО
      ВОЗВРАТ УЗК(УЗК(н-80H))
    КОН
  КОН;
  ВОЗВРАТ 0
КОН ВВин;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ИзДос-(код:ЯЧЦЕЛ):ЗНАК;
(* Переводит Дос-<код> знака в знак. *)
УКАЗ 
  ЕСЛИ  код >= 0 ТО
    ВОЗВРАТ ВЗНАК(код)
  КОН;
  ВОЗВРАТ издос[код+80H]
КОН ИзДос;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ИзВин-(код:ЯЧЦЕЛ):ЗНАК;
(* Переводит Вин-<код> знака в знак. *)
УКАЗ 
  ЕСЛИ  код >= 0 ТО
    ВОЗВРАТ ВЗНАК(код)
  КОН;
  ВОЗВРАТ извин[код+80H]
КОН ИзВин;
 ;
 ;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА Подготовить;
УКАЗ
  извин:='#0402#0403#201A#0453#201E#2026#2020#2021#20AC#2030#0409#2039#040A#040C#040B#040F#0452#2018#2019#201C#201D#2022#2013#2014#0098#2122#0459#203A#045A#045C#045B#045F#00A0#040E#045E#0408#00A4#0490#00A6#00A7#0401#00A9#0404#00AB#00AC#00AD#00AE#0407#00B0#00B1#0406#0456#0491#00B5#00B6#00B7#0451#2116#0454#00BB#0458#0405#0455#0457#0410#0411#0412#0413#0414#0415#0416#0417#0418#0419#041A#041B#041C#041D#041E#041F#0420#0421#0422#0423#0424#0425#0426#0427#0428#0429#042A#042B#042C#042D#042E#042F#0430#0431#0432#0433#0434#0435#0436#0437#0438#0439#043A#043B#043C#043D#043E#043F#0440#0441#0442#0443#0444#0445#0446#0447#0448#0449#044A#044B#044C#044D#044E#044F';
  издос:='#0410#0411#0412#0413#0414#0415#0416#0417#0418#0419#041A#041B#041C#041D#041E#041F#0420#0421#0422#0423#0424#0425#0426#0427#0428#0429#042A#042B#042C#042D#042E#042F#0430#0431#0432#0433#0434#0435#0436#0437#0438#0439#043A#043B#043C#043D#043E#043F#2591#2592#2593#2502#2524#2561#2562#2556#2555#2563#2551#2557#255D#255C#255B#2510#2514#2534#252C#251C#2500#253C#255E#255F#255A#2554#2569#2566#2560#2550#256C#2567#2568#2564#2565#2559#2558#2552#2553#256B#256A#2518#250C#2588#2584#258C#2590#2580#0440#0441#0442#0443#0444#0445#0446#0447#0448#0449#044A#044B#044C#044D#044E#044F#0401#0451#0404#0454#0407#0457#040E#045E#00B0#2219#00B7#221A#2116#00A4#25A0#00A0'
КОН Подготовить;

 ;
 ;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
УКАЗ
  Подготовить
КОН Знак.

 
 


Вопросы, замечания и предложения высылайте на atimopheyev@yahoo.com

 
Главная     ◄Глагол     ◄Азбука     ◄Задачи на Глаголе     Примеры приложений ►   Среда разработки ►   Отладка программ ►   Отличия от Оберона ►   Отличия от Паскаля ►   Ассемблер ARM ►   Глагол для ARM ►   ? и Ответы